package cn.mw.cmdb.virtualization.service;

import cn.mw.cmdb.virtualization.dto.VirtualizationTreeDto;
import cn.mw.cmdb.virtualization.dto.unicloud.UniCloudVsWitchDto;
import cn.mw.cmdb.virtualization.param.VirtualizationParam;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;

/**
 * @author gengjb
 * @description 虚拟化接口
 */
public interface MwVirtualizationService {

    /**
     * 虚拟化资产新增后需要将同步的数据关联起来
     * @param param
     */
    void instanceRelationData(VirtualizationParam param);

    /**
     * 获取虚拟化树信息
     */
    List<VirtualizationTreeDto> getVirtualizationTree(VirtualizationParam param) throws Exception;

    /**
     * 获取虚拟化存储信息
     */
    Page getVirtualizationStorageInfo(VirtualizationParam param) throws Exception;

    /**
     * 获取虚拟化基本信息
     * @param param
     */
    Object getVirtualizationBasicInfo(VirtualizationParam param) throws Exception;

    /**
     * 同步虚拟化数据
     * @param param
     */
    void syncVirtualizationData(VirtualizationParam param);

    /**
     * 获取虚拟交换机信息
     */
    Page getUniCloudVsWitchInfo(VirtualizationParam param) throws Exception;
}
